home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / obero / oberon_lib.lha / oberon-a / source1.lha / source / Amiga / KeyMap.mod < prev    next >
Text File  |  1994-08-08  |  2KB  |  87 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: KeyMap.mod $
  4.   Description: Keymap definitions
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.2 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 00:47:25 $
  10.  
  11.   $VER: keymap.h 36.3 (13.4.90)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A interface Copyright © 1994, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. ***************************************************************************)
  22.  
  23. MODULE KeyMap;
  24.  
  25. (*
  26. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  27. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  28. ** $V- OvflChk       $Z- ZeroVars
  29. *)
  30.  
  31. IMPORT E := Exec;
  32.  
  33.  
  34. (*
  35. **      key map definitions for keymap.resource, keymap.library, and
  36. **      console.device
  37. *)
  38.  
  39. TYPE
  40.  
  41.   KeyMapPtr* = CPOINTER TO KeyMap;
  42.   KeyMap* = RECORD
  43.     loKeyMapTypes * : CPOINTER TO ARRAY 64 OF E.BSET;
  44.     loKeyMap *      : CPOINTER TO ARRAY 64 OF E.ULONG;
  45.     loCapsable *    : CPOINTER TO ARRAY 8 OF E.BSET;
  46.     loRepeatable *  : CPOINTER TO ARRAY 8 OF E.BSET;
  47.     hiKeyMapTypes * : CPOINTER TO ARRAY 64 OF E.BSET;
  48.     hiKeyMap *      : CPOINTER TO ARRAY 64 OF E.ULONG;
  49.     hiCapsable *    : CPOINTER TO ARRAY 8 OF E.BSET;
  50.     hiRepeatable *  : CPOINTER TO ARRAY 8 OF E.BSET;
  51.   END; (* KeyMap *)
  52.  
  53.   KeyMapNodePtr* = CPOINTER TO KeyMapNode;
  54.   KeyMapNode* = RECORD (E.Node) (* including name of keymap *)
  55.     keyMap * : KeyMap;
  56.   END; (* KeyMapNode *)
  57.  
  58.   KeyMapResourcePtr* = CPOINTER TO KeyMapResource;
  59.   KeyMapResource* = RECORD (E.Node)
  60.     list * : E.List;        (* a list of KeyMapNodes *)
  61.   END; (* KeyMapResource *)
  62.  
  63. CONST
  64.  
  65. (* Key Map Types *)
  66.   kcShift *   = 0;
  67.   kcAlt *     = 1;
  68.   kcControl * = 2;
  69.   kcDownUp *  = 3;
  70.   kcDead *    = 5;           (* may be dead or modified by dead key: *)
  71.                              (*   use dead prefix bytes              *)
  72.   kcString *  = 6;
  73.   kcNop *     = 7;
  74.  
  75.   kcNoQual *  = {};
  76.   kcVanilla * = {kcShift, kcAlt, kcControl}; (* note that SHIFT+ALT+CTRL is VANILLA *)
  77.  
  78. (* Dead Prefix Bytes *)
  79.   dpbMod * = 0;
  80.   dpbDead* = 3;
  81.  
  82.   dp2dIndexMask * = 0FH;     (* mask for index for 1st of two dead keys *)
  83.   dp2dFacShift  * = 4;       (* shift for factor for 1st of two dead keys *)
  84.  
  85.  
  86. END KeyMap.
  87.